<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="../vue.js"></script>
</head>

<body>
  <div id="app">
    <App></App>
  </div>
  <script>
    /* 
        创建组件：
            VUe.extend(options):
            options的写法和new Vue时的options写法类似，只是没有el选项,因为只有vm决定服务在哪一个容器，而组件都是基于vm的
            我们希望给每一个组件都添加一个name配置项，代表当前组件的名称，目前的作用是为了在开发者工具区分组件
            Vue.extend返回一个VueComponent构造函数，每次组件在使用的时候，都会被实例化，得到一个组件实例
        
        组件的使用：
            首先创建一个组件，得到一个VueComponent构造函数
            要在父组件中或者vm实例中进行注册，才可以使用，需要使用components配置项进行注册
            在模板中通过标签的方式使用组件，单双标签都可以(在非单文件组件中，组件尽量写成双标签)
    */

    const App = Vue.extend({
      name: "App",
      template: "<div>App组件--{{message}}</div>",
      data() {
        return {
          message: "app组件中的数据"
        };
      }
    });

    new Vue({
      el: "#app",
      data() {
        return {

        };
      },
      components: {
        App,
      }
    })
  </script>
</body>

</html>